package com.cn.appcore.widget

import android.content.Context
import com.cn.appcore.R
import com.cn.appcore.ext.getCompatColor
import com.scwang.smart.refresh.footer.ClassicsFooter
import com.scwang.smart.refresh.header.ClassicsHeader
import com.scwang.smart.refresh.layout.SmartRefreshLayout
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.constant.SpinnerStyle

/**
 * 项目：JingShortVideo
 * 包名：com.cn.jingshortvideo.constants
 * 类名：RefreshHelper
 * 创建时间：2022/9/2 13:20
 * 创建人 @author： xiaolin
 * 描述 ：Todo...刷新
 */

interface CustomRefreshListener {
    fun _onRefresh(refreshLayout: RefreshLayout?)

    fun _onLoadMore(refreshLayout: RefreshLayout?)
}
class RefreshHelper {
    companion object {
        fun initRefreshLayout(refreshLayout: SmartRefreshLayout, customRefreshListener: CustomRefreshListener) {
//        refreshLayout.setEnableLoadMore(true);
            refreshLayout.setEnableAutoLoadMore(false)  //滚动列表自动加载更多
            refreshLayout.setDisableContentWhenRefresh(true) //刷新的时候禁止操作列表
            refreshLayout.setDisableContentWhenLoading(true) //是否在加载的时候禁止列表的操作
            refreshLayout.setEnableScrollContentWhenLoaded(true)  //是否在加载完成时滚动列表显示新的内容
            refreshLayout.setEnableFooterTranslationContent(true) //是否上拉Footer的时候向上平移列表或者内容
            refreshLayout.setOnRefreshListener { refreshLayout -> customRefreshListener._onRefresh(refreshLayout) }
            refreshLayout.setOnLoadMoreListener { refreshLayout -> customRefreshListener._onLoadMore(refreshLayout) }
        }

        fun finishRefresh(refreshLayout: SmartRefreshLayout?, page: Int) {
            if (null != refreshLayout) {
                if (page == 1) {
                    refreshLayout.finishRefresh()
                } else {
                    refreshLayout.finishLoadMore()
                }
            }
        }
        fun SmartRefreshLayout?.onFinish(success: Boolean, noMoreData: Boolean = true) {
            this?.apply {
                var isSetNoMoreData = false
                if (isRefreshing) {
                    finishRefresh(300, success, noMoreData)
                    isSetNoMoreData = true
                }
                if (isLoading) {
                    finishLoadMore(300, success, noMoreData)
                    isSetNoMoreData = true
                }
                if (!isSetNoMoreData) {
                    setNoMoreData(noMoreData)
                }
            }
        }


//        //单独修改
//        fun upHeader(header: ClassicsHeader, footer: ClassicsFooter, context: Context) {
//            header.setAccentColor(
//               context.getCompatColor(
//                   R.color.black
//                ))
//            header.setTextSizeTitle(10f)
//            header.setTextSizeTime(10f)
//            header.setDrawableSize(12f) //同时设置箭头和图片的大小（dp单位）
//            header.setDrawableArrowSize(12f) //设置箭头的大小（dp单位）
//            header.setDrawableProgressSize(12f) //设置图片的大小（dp单位）
//            header.setArrowResource(R.drawable.icon_refresh)
//            header
//            footer.setAccentColor(CommUtil.getColor(context, R.color.black))
//            footer.setTextSizeTitle(12f)
//            footer.setDrawableSize(14f) //同时设置箭头和图片的大小（dp单位）
//            footer.setDrawableArrowSize(14f) //设置箭头的大小（dp单位）
//            footer.setDrawableProgressSize(14f) //设置图片的大小（dp单位）
//            footer.spinnerStyle = SpinnerStyle.Translate
//            footer
//        }
    }



}